1 using System;
2 using
System.Collections.Generic;
3 using
System.ComponentModel;
4 using
System.Data;
5 using
System.Drawing;
6 using
System.Text;
7 using
System.Windows.Forms;
8 using
System.Data.SqlClient;
9 using
Telerik.Data;
10 using
Telerik.WinControls.UI;
11 using
QuanLyNhanSu.Class;
12 using
Telerik.WinControls;
13
14 namespace
QuanLyNhanSu
15 {
16     
public partial class frmbangluong : RadForm
17     {
18         
//khai báo biến toàn cục
19         clsdmpb cPhong =
new clsdmpb();
20         clsDMTo cTo =
new clsDMTo();
21         clsbangluong cluong =
new clsbangluong();
22         clshieuqua chieuqua =
new clshieuqua();
23         clsTiLeLuong cTLL =
new clsTiLeLuong();
24         
string thangkt = frmkiemtrabangluong.thangkt;
25         
string namkt = frmkiemtrabangluong.namkt;
26
27         
public frmbangluong()
28         {
29             InitializeComponent();
30             cboPhong.DataSource = cPhong.taocombo();
31             cboPhong.DisplayMember =
"tbl_PhongBan.TenPhong";
32             cboPhong.ValueMember =
"tbl_PhongBan.MaPhong";
33             lblthang.Text =
"Bảng Lương Tháng " + thangkt + " năm " + namkt;
34         }
35         
//Hiển thị thông tin nhân viên vào list nhân viên
36         
private void HienThiListNV(DataTable dt, ListView lv)
37         {
38             
foreach (DataRow row in dt.Rows)
39             {
40                 ListViewItem item =
new ListViewItem();
41                 item.Text = row[
"MaNV"].ToString();
42                 item.SubItems.Add(row[
"Ho"].ToString());
43                 item.SubItems.Add(row[
"Ten"].ToString());
44                 lv.Items.Add(item);
45             }
46
47         }
48         
//set list
49         
private void setlist(bool b)
50         {
51             lstNhanvien.Enabled = b;
52             cboPhong.Enabled = b;
53             cboTo.Enabled = b;
54         }
55         
//hiển thị thông tin nhân viên
56         
private void HienThiTTNV(string ma)
57         {
58             cluong.laydl(thangkt, namkt, ma);
59             txtmanv.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["MaNV"].ToString();
60             txtluongcb.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["LuongCoBan"].ToString();
61             txtphucapcv.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["PhuCapCV"].ToString();
62             txtsongaycong.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["SoNgayLV"].ToString();
63             txtsongayphep.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["SoNgayNghiPhep"].ToString();
64             txtot1.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["SogioTangCa"].ToString();
65             txtot2.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["SoGioTangCaCN"].ToString();
66             txtngayngungviec.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["SoNgayNghiNgungViec"].ToString();
67             txtpcsinhhoatcc.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["PCSinhHoatCC"].ToString();
68             txtthuclanh.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["ThucLanh"].ToString();
69             txtpckhac.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["PhuCapKhac"].ToString();
70             txttileccvasinhhoat.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["TiLeCCvaSinhHoat"].ToString();
71             txtluongngaycong.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["LuongLamViec"].ToString();
72             txtluongtangca.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["LuongTangCa"].ToString();
73             txtbhxhvabhyt.Text = cluong.ds.Tables[
"bangluong"].Rows[0]["BHXHvaBHYT"].ToString();
74             
//cbophanloai.SelectedItem = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
75             cbophanloai.DataSource = cluong.ds;
76             cbophanloai.DisplayMember =
"bangluong.mahieuqua";
77             cbophanloai.ValueMember =
"bangluong.mahieuqua";
78         }
79         
//set control trong grpchamcong
80         
private void setgrpchamcong(bool b)
81         {
82             
foreach (Control c in grpchamcong.Controls)
83             {
84                 
if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
85                 {
86                     c.Enabled = b;
87                 }
88             }
89         }
90         
//set nut
91         
private void setcmd(bool b)
92         {
93             cmdluu.Enabled = !b;
94             cmdchamcong.Enabled = b;
95         }
96         
//taocombophanloai
97         
private void taocombo()
98         {
99             cbophanloai.DataSource = chieuqua.taocombo();
100             cbophanloai.DisplayMember =
"hieuqua.MaHieuQua";
101             cbophanloai.ValueMember =
"hieuqua.MaHieuQua";
102             
if (txtmanv.Text != "") cbophanloai.Text = cluong.ds.Tables["bangluong"].Rows[0]["MaHieuQua"].ToString();
103
104         }
105         
//hiển thị dữ liệu lên datagirdview
106         
private void HienThiTTGird(string thang, string nam, string maphong, string mato)
107         {
108             dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong, mato);
109             dgv_bangluong.DataMember =
"bangluong";
110         }
111         
//hiển thi dữ liệu lên datagirdview không có tổ
112         
private void HienThiTTGird(string thang, string nam, string maphong)
113         {
114             dgv_bangluong.DataSource = cluong.laydlgird(thang, nam, maphong);
115             dgv_bangluong.DataMember =
"bangluong";
116             
this.dgv_bangluong.Columns[0].IsVisible = false;
117             
this.dgv_bangluong.Columns[1].IsVisible = false;
118             
this.dgv_bangluong.Columns[2].HeaderText = "Mã nhân viên";
119             
this.dgv_bangluong.Columns[3].HeaderText = "Họ";
120             
this.dgv_bangluong.Columns[4].HeaderText = "Tên";
121             
this.dgv_bangluong.Columns[5].HeaderText = "Mã phòng";
122             
this.dgv_bangluong.Columns[6].HeaderText = "Mã tỗ";
123             
this.dgv_bangluong.Columns[5].IsVisible = false;
124             
this.dgv_bangluong.Columns[6].IsVisible = false;
125             
this.dgv_bangluong.Columns[7].HeaderText = "Lương cơ bản";
126             
this.dgv_bangluong.Columns[8].HeaderText = "Mã hiệu quả";
127             
this.dgv_bangluong.Columns[9].HeaderText = "Tỷ lệ hiệu quả";
128             
this.dgv_bangluong.Columns[10].HeaderText = "Số ngày công";
129             
this.dgv_bangluong.Columns[11].HeaderText = "Số giờ tăng ca";
130             
this.dgv_bangluong.Columns[12].HeaderText = "Số giờ tăng ca CN";
131             
this.dgv_bangluong.Columns[13].HeaderText = "Số ngày nghỉ phép";
132             
this.dgv_bangluong.Columns[14].HeaderText = "Số ngày nghỉ ngưng việc";
133             
this.dgv_bangluong.Columns[15].HeaderText = "Tỷ lệ chuyên cần";
134             
this.dgv_bangluong.Columns[16].HeaderText = "Lưong làm việc";
135             
this.dgv_bangluong.Columns[17].HeaderText = "Lương tăng ca";
136             
this.dgv_bangluong.Columns[18].HeaderText = "BHXH & BHYT";
137             
this.dgv_bangluong.Columns[19].HeaderText = "Phụ cấp chức vụ";
138             
this.dgv_bangluong.Columns[20].HeaderText = "Phụ cấp sinh hoạt";
139             
this.dgv_bangluong.Columns[21].HeaderText = "Phụ cấp khác";
140             
this.dgv_bangluong.Columns[22].HeaderText = "Thực lãnh";
141            
142             
for (int i = 0; i < this.dgv_bangluong.Columns.Count;i++ )
143             {
144                 
this.dgv_bangluong.Columns[i].BestFit();
145             }
146         }
147         
//làm rổng các textbox và combobox trong các group
148         
private void lamrong()
149         {
150             
foreach (Control c in grpttnv.Controls)
151             {
152                 
if (c.Name.Contains("txt") == true)
153                 {
154                     c.Text =
"";
155                 }
156             }
157             
foreach (Control c in grpchamcong.Controls)
158             {
159                 
if (c.Name.Contains("txt") == true || c.Name.Contains("cbo") == true)
160                 {
161                     c.Text =
"";
162                 }
163             }
164             
foreach (Control c in grpbangluong.Controls)
165             {
166                 
if (c.Name.Contains("txt") == true)
167                 {
168                     c.Text =
"";
169                 }
170             }
171
172
173         }
174
175         
private void frmbangluong_Load(object sender, EventArgs e)
176         {
177
178         }
179
180         
private void cboPhong_SelectedIndexChanged(object sender, EventArgs e)
181         {
182             
//maphongin = cboPhong.SelectedValue.ToString();
183             txtngaycongchuan.Text =
"";
184             txttileluong.Text =
"";
185             
//Hiển thị dữ liệu nhân viên vào list
186             lstNhanvien.Items.Clear();
187             HienThiListNV(cPhong.laydlList(cboPhong.SelectedValue.ToString(), thangkt, namkt), lstNhanvien);
188             
//lấy dữ liệu vào gird
189             HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
190             
//lấy dữ liệu ngày công chuẩn và tỉ lệ lương của phòng
191             
try
192             {
193                 cTLL.laydl(thangkt, namkt, cboPhong.SelectedValue.ToString(),
"");
194                 txtngaycongchuan.Text = cTLL.ds1.Tables[
"TiLeLuong"].Rows[0]["SoNgayCongThang"].ToString();
195                 txttileluong.Text = cTLL.ds1.Tables[
"TiLeLuong"].Rows[0]["TiLeLuong"].ToString();
196             }
197             
catch { }
198             
//tạo combobox to
199             cboTo.DataSource = cTo.taocombo(cboPhong.SelectedValue.ToString());
200             cboTo.DisplayMember =
"DanhMucTo.TenTo";
201             cboTo.ValueMember =
"DanhMucTo.MaTo";
202             cboTo.Text =
"";
203             
//làm rổng các textbox
204             lamrong();
205
206         }
207
208         
private void cboTo_SelectedIndexChanged(object sender, EventArgs e)
209         {
210
211         }
212
213         
private void lstNhanvien_SelectedIndexChanged(object sender, EventArgs e)
214         {
215             
string ma = lstNhanvien.FocusedItem.SubItems[0].Text;
216             
string ho = lstNhanvien.FocusedItem.SubItems[1].Text;
217             
string ten = lstNhanvien.FocusedItem.SubItems[2].Text;
218             txthoten.Text = ho +
" " + ten;
219             HienThiTTNV(ma);
220         }
221         
//
222         
//bột nút của bảng lương
223         
//
224         
private void cmdchamcong_Click(object sender, EventArgs e)
225         {
226             
if (txtmanv.Text == "")
227             {
228                 MessageBox.Show(
"Bạn phải chọn nhân viên chấm công", "Thông Báo");
229             }
230             
else
231             {
232                 
this.cmdtinhluong.Enabled = false;
233                 setlist(
false);
234                 setgrpchamcong(
true);
235                 grpchamcong.Enabled =
true;
236                 setcmd(
false);
237                 taocombo();
238                 cbophanloai.Focus();
239             }
240         }
241
242         
private void cmdluu_Click(object sender, EventArgs e)
243         {
244             
if (Int32.Parse(this.txtsongaycong.Text.Trim()) >= 0 &&
245                 Int32.Parse(
this.txtsongaycong.Text.Trim()) <= 31 &&
246                 Int32.Parse(
this.txtsongayphep.Text.Trim()) >= 0 &&
247                 Int32.Parse(
this.txtsongayphep.Text.Trim()) <= 31 &&
248                 Int32.Parse(
this.txtngayngungviec.Text.Trim()) >= 0 &&
249                 Int32.Parse(
this.txtngayngungviec.Text.Trim()) <= 31
250                 )
251             {
252                 cluong.chamcong(thangkt, namkt, txtmanv.Text.Trim(),
253                                 cbophanloai.SelectedValue.ToString(),
254                                 txtsongaycong.Text.Trim() !=
"" ? int.Parse(txtsongaycong.Text.Trim()) : 0,
255                                 txtot1.Text.Trim() !=
"" ? int.Parse(txtot1.Text.Trim()) : 0,
256                                 txtot2.Text.Trim() !=
"" ? int.Parse(txtot2.Text.Trim()) : 0,
257                                 txtsongayphep.Text.Trim() !=
"" ? int.Parse(txtsongayphep.Text.Trim()) : 0,
258                                 txtngayngungviec.Text.Trim() !=
"" ? int.Parse(txtngayngungviec.Text.Trim()) : 0,
259                                 txttileccvasinhhoat.Text.Trim() !=
"" ? double.Parse(txttileccvasinhhoat.Text.Trim()) : 0,
260                                 txtpckhac.Text.Trim() !=
"" ? int.Parse(txtpckhac.Text.Trim()) : 0);
261                 setlist(
true);
262                 setgrpchamcong(
false);
263                 grpchamcong.Enabled =
false;
264                 setcmd(
true);
265                 HienThiTTNV(txtmanv.Text.Trim());
266                 
if (cboTo.Text != "")
267                 {
268                     
//đưa dữ liệu vào datagirdview
269                     HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
270                     
this.cmdtinhluong.Enabled = true;
271                 }
272                 
else
273                 {
274                     
//đưa dữ liệu vào datagirdview
275                     HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
276                     
this.cmdtinhluong.Enabled = true;
277                 }
278             }
279             
else
280             {
281                 RadMessageBox.Show(
"\nThông tin ngày phải lớn hơn hoặc bằng 0 và và nhỏ hơn hoặc bằng 31 !\n","Thông báo",MessageBoxButtons.OK,RadMessageIcon.Exclamation);
282             }
283         }
284
285         
private void cmdtinhluong_Click(object sender, EventArgs e)
286         {
287             
if ((txtngaycongchuan.Text == "") || (txttileluong.Text == ""))
288             {
289                 DialogResult rs = RadMessageBox.Show(
"\nBạn chưa nhập số ngày làm việc trong tháng và tỉ lệ lương.\nMở Form Tỉ lệ lương để nhập vào ?\n", "Thông báo", MessageBoxButtons.YesNo,RadMessageIcon.Question);
290                 
if (rs == DialogResult.Yes)
291                 {
292                     frmbangtileluong f =
new frmbangtileluong();
293                     f.MdiParent =
this.MdiParent;
294                     f.Show();
295                     
this.Close();
296                 }
297             }
298
299             
else
300             {
301                 
//kiểm tra chấm công hết chưa
302                 
bool bchamcong = false;
303                 
for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
304                 {
305                     
//DataGridViewRow dgvrow = dgv_bangluong.Rows[i];
306                     
if (dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString() == "")
307                         bchamcong =
true;
308                 }
309                 
if (bchamcong)
310                     RadMessageBox.Show(
"\nChưa chấm công xong !\n", "Thông Báo");
311                 
else
312                 
//tính lương
313                 {
314                     
for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
315                     {
316                         cluong.tinhluong(thangkt, namkt, dgv_bangluong.Rows[i].Cells[
"manv"].Value.ToString(),
317                                         
int.Parse(dgv_bangluong.Rows[i].Cells["luongcoban"].Value.ToString()),
318                                         
double.Parse(dgv_bangluong.Rows[i].Cells["tilehq"].Value.ToString()),
319                                         
int.Parse(dgv_bangluong.Rows[i].Cells["songaylv"].Value.ToString()),
320                                         
int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangca"].Value.ToString()),
321                                         
int.Parse(dgv_bangluong.Rows[i].Cells["sogiotangcacn"].Value.ToString()),
322                                         
int.Parse(dgv_bangluong.Rows[i].Cells["songaynghiphep"].Value.ToString()),
323                                         
int.Parse(dgv_bangluong.Rows[i].Cells["songaynghingungviec"].Value.ToString()),
324                                         
double.Parse(dgv_bangluong.Rows[i].Cells["tileccvasinhhoat"].Value.ToString()),
325                                         
int.Parse(dgv_bangluong.Rows[i].Cells["phucapcv"].Value.ToString()),
326                                         
int.Parse(txtngaycongchuan.Text.Trim()),
327                                         TileTB(
double.Parse(txttileluong.Text.Trim()),
328                                         dgv_bangluong.Rows.Count -
1,
329                                         LaySNTheoLoai(), chieuqua.tilehq()),
330                                         
int.Parse(dgv_bangluong.Rows[i].Cells["phucapkhac"].Value.ToString()));
331                     }
332                     
if (cboTo.Text != "")
333                     {
334                         
//đưa dữ liệu vào datagirdview
335                         HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString(), cboTo.SelectedValue.ToString());
336                     }
337                     
else
338                     {
339                         
//đưa dữ liệu vào datagirdview
340                         HienThiTTGird(thangkt, namkt, cboPhong.SelectedValue.ToString());
341                     }
342                     lamrong();
343                 }
344             }
345         }
346
347         
//
348         
//các hàm tính lương
349         
//
350
351         
//hàm trả về mảng lấy tổng số người theo phân loại
352         
private int[] LaySNTheoLoai()
353         {
354             
string[] Loai = chieuqua.bangphanloai();
355             
int[] SN = new int[Loai.Length];
356             
for (int i = 0; i < dgv_bangluong.Rows.Count - 1; i++)
357             {
358                 
//DataGridViewRow r = dgv_bangluong.Rows[i];
359                 
for (int j = 0; j < Loai.Length; j++)
360                 {
361                     
if (Loai[j] == dgv_bangluong.Rows[i].Cells["mahieuqua"].Value.ToString().Trim())
362                         SN[j] +=
1;
363                 }
364             }
365             
return SN;
366         }
367
368         
// hàm tính tỉ lệ lương trung bình cho từng người trong phòng hoặc tổ
369         
private double TileTB(double tileluong, int songuoi, int[] songuoitheopl, double[] TiLeHQ)
370         {
371             
double TongTiLeLuongTheoLoai = 0;
372             
double TongTiLeLuong = tileluong * songuoi;
373             
for (int i = 0; i < songuoitheopl.Length; i++)
374             {
375                 TongTiLeLuongTheoLoai += songuoitheopl[i] * TiLeHQ[i];
376             }
377             
return TongTiLeLuong / TongTiLeLuongTheoLoai;
378         }
379
380         
private void cbophanloai_SelectedIndexChanged(object sender, EventArgs e)
381         {
382
383         }
384
385         
private void cmdin_Click(object sender, EventArgs e)
386         {
387             
if (cboPhong.Text.Trim() == "")
388             {
389                 MessageBox.Show(
"Bạn phải chọn phòng để in", "Thông báo");
390             }
391             
else
392             {
393                 
//frmrptluongtheophong f = new frmrptluongtheophong();
394                 
//f.MdiParent = this.MdiParent;
395                 
//f.Show();
396             }
397         }
398
399         
private void txtsongaycong_KeyPress(object sender, KeyPressEventArgs e)
400         {
401             
if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
402             {
403                 RadMessageBox.Show(
"\nChỉ được phép nhập số vào ô thông tin này !\n", "Thông báo", MessageBoxButtons.OK, RadMessageIcon.Exclamation);
404                 e.Handled =
true;
405             }
406         }
407
408  
409
410         
411
412
413     }
414 }



Quản lý nhân sự công ty bằng c# _ full source code 60.483 lượt xem

Gõ tìm kiếm nhanh...